import random
import time

from config.config import COLLEGE_API_URL, HEADERS


def fetch_all_college_data(session):
    all_data = []
    page_size = 20
    total_pages = 85

    for page in range(1, total_pages + 1):
        # 1. URL查询参数（通过params传递）
        params = {
            "page": page,  # 固定抓取第二页
            "size": page_size,
            "sort": "sorted,DESC"
        }

        # 2. 请求体数据（即使为空也要传）
        request_body = {}  # 根据API文档可能需要添加其他查询条件

        print(f"请求参数: params={params}, body={request_body}")

        # 注意同时传递params和json
        response = session.post(
            COLLEGE_API_URL,
            headers=HEADERS,
            params=params,  # URL参数
            json=request_body  # 请求体数据
        )

        if response.status_code == 200:
            try:
                response_data = response.json()
                page_data = response_data.get("data", {}).get("list", [])
                all_data.extend(page_data)
                print(f"已抓取第 {params['page']} 页，共 {len(page_data)} 条")
            except Exception as e:
                print(f"解析响应数据失败: {e}")
                print(f"原始响应: {response.text}")
        else:
            raise Exception(f"请求失败：第 {params['page']} 页 - {response.status_code} - {response.text}")

        time.sleep(random.uniform(1.0, 2.0))

    print(f"共抓取 {len(all_data)} 条数据")
    return all_data